package site.brood.common.log.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import site.brood.common.core.excel.annotation.Excel;
import java.time.LocalDateTime;

@ApiModel("操作日志")  //Swagger注解
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LogOperationDto {
    /** 日志主键 */
    @ApiModelProperty("id")
    @Excel(name = "操作id", cellType = Excel.ColumnType.NUMERIC)
    private Long id;

    /** 操作模块 */
    @Excel(name = "标题")
    @ApiModelProperty("标题")
    private String title;

    /** 业务类型（0其它 1新增 2修改 3删除） */
    @Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据")
    @ApiModelProperty("业务类型（0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据）")
    private long businessType;

    /** 请求方法 */
    @Excel(name = "请求方法")
    @ApiModelProperty("请求方法")
    private String method;

    /** 请求方式 */
    @Excel(name = "请求方式")
    @ApiModelProperty("请求方式")
    private String requestMethod;

    /** 终端 */
    @Excel(name = "终端类别", readConverterExp = "PC_WEB=PC_WEB,ANDROID=ANDROID,IOS=IOS,WX_MINI=微信小程序,PC_MANAGE=后台管理")
    @ApiModelProperty("终端类别（PC_WEB=PC_WEB,ANDROID=ANDROID,IOS=IOS,WX_MINI=微信小程序,PC_MANAGE=后台管理）")
    private String clientChannel;

    /** 操作人员 */
    @Excel(name = "操作人员")
    @ApiModelProperty("操作人员")
    private String operName;

    /** 部门名称 */
    @Excel(name = "部门名称")
    @ApiModelProperty("部门名称")
    private String deptName;

    /** 请求url */
    @Excel(name = "请求地址")
    @ApiModelProperty("请求URL")
    private String operUrl;

    /** 操作地址 */
    @Excel(name = "操作地址")
    @ApiModelProperty("主机地址")
    private String operIp;

    @ApiModelProperty("操作地点")
    private String operLocation;

    /** 请求参数 */
    @Excel(name = "请求参数")
    @ApiModelProperty("请求参数")
    private String operParam;

    /** 返回参数 */
    @Excel(name = "返回参数")
    @ApiModelProperty("返回参数")
    private String jsonResult;

    /** 操作状态（0正常 1异常） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=异常")
    @ApiModelProperty("操作状态（0=正常,1=异常）")
    private long status;

    /** 错误消息 */
    @Excel(name = "错误消息")
    @ApiModelProperty("错误消息")
    private String errorMsg;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("操作时间")
    private LocalDateTime updateTime;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remark;
}